In a memory system including a non-volatile semiconductor memory such as a flash memory, firmware is stored in the non-volatile semiconductor memory. The firmware is loaded to a volatile memory from the non-volatile semiconductor memory at the time of power-on of the memory system. A processor executes the firmware, thereby controlling a plurality of constituent elements configuring the memory system.
Even in a memory system of the same model, the firmware is updated according to its customer, usage environment, or variations of coupling parts. At the time of update of the firmware, if a firmware image is prepared for the number of variations and the firmware consistent with the applicable environment is manually selected, the cost burden for the maintenance and verification works increases.